The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Firmware, sometimes also referred to as system software, is the collective software that runs directly on an embedded system, such as an embedded controller or a system on a chip (SoC). System software can also run on standard processors, but they always tend to have a small footprint, such as a few megabytes (with some exceptions). The firmware image is usually stored in the non-volatile memory of the embedded system, such as a read-only memory (ROM) or a flash memory.
Typically, updating firmware may involve programming the entire image of the firmware. However, the non-volatile memory is optimized for reading operations rather than writing operations. Thus, write cycles for the non-volatile memory are several times slower than the read cycles. In this case, updating the entire image of the firmware may range from a few seconds to a few minutes, depending upon the size of the non-volatile memory. During the firmware updating process, the embedded system is under a critical stage, and having the system to go through the critical stage for prolonged time is very risky. If anything interrupts the firmware update, the embedded system can be rendered unusable. Further, to updating the whole firmware image, the entire new image has to be supplied to the embedded system. Transmitting the entire new image to the embedded system may consume memory space and addition time. Also, if the firmware image is sent to the embedded system through out-of-band routes, the transmission may consume network bandwidth.
Therefore, an unaddressed need exists in the art to address the aforementioned deficiencies and inadequacies.